#pragma once

#include <string>

class ModuleData;
using namespace std;

class ChannelData
{

public:
	ChannelData(bool bidirectional = false); 
	virtual ~ChannelData();
	virtual void setSource(ModuleData* sourceModuleData, string sourceName, string sourceType);
	virtual void setTarget(ModuleData* targetModuleData, string targetName, string targetType);
	virtual string getSourceName();
	virtual string getSourceType();
	virtual string getTargetName();
	virtual string getTargetType();
	virtual ModuleData* getTargetModuleData();
	virtual ModuleData* getSourceModuleData();
	virtual bool isBidirectional();
private:
	string mSourceName;
	string mSourceType;
	string mTargetName;
	string mTargetType;
	ModuleData* mTargetModuleData;
	ModuleData* mSourceModuleData;
	bool mBidirectional;
};
